package com.zsrt.designmodel.ch04.demo01;


/**
 * 
 * 
 * 工厂模式三部曲 之一： 简单工厂模式 枚举优化
 * 模拟生产枪械的兵工厂
 * 
 * SimpleFactory 简单工厂
 * 
 * 
 * 
 * 简单工厂模式=静态工厂方法模式：是工厂方法模式的最简单的方式，是工厂方法模式的一个特列
 * @author zsrt
 *
 *简单工厂模式的缺点：如果要增加一款武器 AK88 。那么需要修改BingFactory类。
 *注意：我们并不希望BingFactory这个类开放给用户。也就是我们希望BingFactory以后的代码不需要修改，如何优化?  用工厂方法模式
 *
 */
public class BingFactory{

	/**
	 * 使用枚举代理字符串
	 * @param name
	 * @return
	 */
	public static Gun createGun(/*String name*/ GunEnum gun) {
		if(/*"56".equals(gun)*/ GunEnum.C56.equals(gun)){
			//如果中国56式冲锋枪超过1000把就不能申请...
			return new C56();
		}else if(/*"48".equals(name)*/ GunEnum.AK47.equals(gun)){
			return new AK47();
		}
		return null;
	}

}
